package hermes.persistencia.mapeadores;

import hermes.controle.ClasseNegocio;
import hermes.controle.Estados;

public class MapeadorEstado implements ClasseMapeadora{
    
    private String tabela = "estados";
    private String camposBancoDados[] = {"nomeEstado", "UF"};
    private String identificadorObjeto = "idObjEstado";

    public MapeadorEstado(){

    }

    @Override
    public String sqlInserir(Object o){
        String sql = null;
        return sql;
    }

    @Override
    public String sqlExcluir(Integer idObjeto){
        String sql = "delete from "+tabela+" where "+identificadorObjeto+" = "+idObjeto+");";
        return sql;
    }

    //falta implementar
    @Override
    public String sqlAlterar(Object o){
        return null;
    }

    //falta implementar
    @Override
    public String sqlBuscar(Integer idObjeto){
        String sql = "select "+identificadorObjeto+","+nomesCamposBD()+" from "+tabela+" where "+identificadorObjeto+ "="+idObjeto;
        return sql;
    }

    @Override
    public String nomesCamposBD() {
        String nomesCamposBancoDados = "";
        nomesCamposBancoDados=camposBancoDados[0];
        for (int i=1;i<camposBancoDados.length;i++){
        nomesCamposBancoDados = nomesCamposBancoDados+", "+camposBancoDados[i];
        }
        nomesCamposBancoDados = nomesCamposBancoDados.substring(0,nomesCamposBancoDados.length());
        int i=nomesCamposBancoDados.length();
        return nomesCamposBancoDados;
    }

    @Override
    public String sqlListar() {
        String sql = null;
        sql = "select "+identificadorObjeto+", "+nomesCamposBD()+" from "+tabela;
        return sql;
    }

    @Override
    public Integer qtdCamposBD() {
        return camposBancoDados.length+1;
    }

    @Override
    public ClasseNegocio getIntanciaClasseNegocio() {
        return new Estados();
    }

    @Override
    public String sqlBuscar(ClasseMapeadora classeMapeadora, String campo, String argumento) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public String[] getCamposBancoDados() {
        return camposBancoDados;
    }
}
